/*
 * DisplayListItem.java
 * business
 *
 * Created by SunDing on 2016/9/9.
 *
 * Copyright (c) 2016年 yidiandao. All rights reserved.
 */

package com.yidiandao.business.ui.widget.listview;

import android.content.Context;

/**
 * ListView中显示的一个item，包含需要显示的数据，对应的ViewHolder.
 *
 * <p><b>客户端的数据类型</b>
 *
 * @param <VH> ViewHolder Item的UI
 * @param <D> ContentData Item的数据
 */
@Deprecated
public abstract class DisplayListItem<VH, D> {

    /** 当前Item中需要显示的数据 */
    protected D data;

    public DisplayListItem(D d) {
        data = d;
    }

    /**
     * 设置对应的ViewHolder的值
     *
     * @param context getView时传递
     * @param holder getView时传递的对应的ViewHolder对象,里面关联了布局中的所有控件(对应的控件最好是public)
     */
    public abstract void onShow(Context context, VH holder);

    /** 返回每个DisplayItem的唯一标识 */
    public abstract String getDisplayItemTag();

    /** 当前DisplayListItem对应的ViewHolder的class,方面创建对象 */
    public abstract Class<VH> getViewHolderClazz();

    /** 获取当前DisplayItem的数据 */
    public D getContentData() {
        return data;
    }

    /** 为当前的DisplayListItem设置数据(ServerData) */
    public void setContentData(D d) {
        data = d;
    }
}
